package com.smedi.ismedi.constructionproject.core.port.adapter.service;


import com.smedi.ismedi.constructionproject.core.application.command.ProcessInstanceStartCommand;
import com.smedi.ismedi.constructionproject.core.application.command.ProcessTaskCompleteCommand;
import com.smedi.ismedi.constructionproject.core.application.command.ProcessTaskListCommand;
import com.smedi.ismedi.constructionproject.core.domain.aggregatemodel.ProcessTask;

import java.util.List;

/**
 * @Author Cookie
 * @Date 2022/7/19
 */
public interface ProcessRemoteService {

    /**
     * 启动 流程实例
     *
     * @param processInstanceStartCommand 流程实例 启动 命令
     * @return Project
     */
    ProcessTask startProcessInstance(ProcessInstanceStartCommand processInstanceStartCommand);

    /**
     * 完成 流程任务
     *
     * @param processTaskCompleteCommand 流程任务 完成 命令
     * @return Project
     */
    ProcessTask completeProcessTask(ProcessTaskCompleteCommand processTaskCompleteCommand);


    /**
     * 获取 流程历史
     *
     * @param processTaskListCommand 获取 流程历史
     * @return Project
     */
    List<ProcessTask> getProcessTaskList(ProcessTaskListCommand processTaskListCommand);
}
